// 封装倒计时逻辑函数
import { computed, ref, onUnmounted } from 'vue'
import dayjs from 'dayjs'
export const useCountDown = () => {
    // 1.响应式数据
    let timer = null
    const time = ref(0)

    // 格式化时间为 xx分xx秒
    const formatTime = computed(() => {
        const minus = dayjs.unix(time.value).format('mm')
        const second = dayjs.unix(time.value).format('ss')

        return `${minus}分${second}秒`
    })
    // 2.开启倒计时的方法
    const start = (currentTime) => {
        if (currentTime <= 0) {
            return
        }
        // 开启倒计时的逻辑
        time.value = currentTime
        timer = setInterval(() => {
            time.value--
        }, 1000)
    }

    // 组件销毁时清除定时器
    onUnmounted(() => {
        timer && clearInterval(timer)
    })

    return {
        formatTime,
        start
    }
}